package com.jiunuan.live.core.server.common;

import com.jiunuan.live.im.constants.ImConstants;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;

/**
 * @Author: JiuNuan
 * @CreateTime: 2024-08-10 21:12
 * @Description: 消息体
 */

@Data
public class ImMsg implements Serializable {
    @Serial
    private static final long serialVersionUID = 8873962070762897523L;
    // 魔数 用于基本校验
    private short magic;
    // 用于识别当前消息的作用，后续会交给不同的handler处理
    private int code;
    // 消息体长度,用于记录body长度
    private int len;
    // 存储消息体的内容，一般会按照字节数值存放
    private byte[] body;

    public static ImMsg build(int code,String data){
        ImMsg imMsg = new ImMsg();
        imMsg.setMagic(ImConstants.DEFAULT_MAGIC);
        imMsg.setCode(code);
        imMsg.setBody(data.getBytes());
        imMsg.setLen(imMsg.getBody().length);
        return imMsg;
    }
}
